Arquivos de provisionamento de amostra do TPM2
11 de maio de 2015
Este diretrio contm:
- arquivos de definio de amostra TPM2
- scripts de fornecimento de amostra
Este documento descreve como usar o contedo deste diretrio e como executar os scripts de provisionamento.

Esses arquivos foram produzidos para uso com o Tpm2ProvTool.efi e incluem arquivos de script em lote (* .nsh) que devem ser executados no shell UEFI. Para usar esses arquivos:
- Copie os arquivos para uma unidade USB
- insira a unidade na plataforma de destino
- executar mapa - r
- faa o drive USB no diretrio ativo (por exemplo, FS0 :)
- mude para o diretrio que contm esses arquivos
- execute os scripts conforme descrito abaixo

================ NOTA ================
O conjunto de identificadores permitidos do NV Index foi alterado e, portanto, existem agora definies antigas usando as identificaes originais do NV Index e novas definies usando as novas identificaes do NV Index. Alm disso, existem definies padro e exemplos de desenvolvimento. Algumas plataformas (cliente) ainda exigem os antigos ndices NV originais. Assim, voc precisar conhecer os requisitos da plataforma antes de selecionar um conjunto. Observe que, embora seja possvel provisionar um TPM com ndices NV originais e novos, isso desperdia recursos valiosos de TPM (ou seja, o conjunto no utilizado consome NV RAM.
================================================== =========================

Existem 4 conjuntos de definies de amostra
- Novo provisionamento padro (padro *. *) - veja aviso abaixo
- Provisionamento Padro Original (OriginalDefault *. *) - veja aviso abaixo
- Novos exemplos de desenvolvimento (exemplo *. *)
- Exemplos originais de desenvolvimento (Original *. *)
Aviso: Os arquivos padro (original e novo) so para aqueles que simplesmente no tm tempo ou a inclinao para criar suas prprias autorizaes privadas.
O seu uso no  recomendado porque, quando voc provisiona um TPM com os ndices NV padro, esses ndices no podem ser excludos nem voc poder alterar os dados NV do ndice PS.

Por outro lado, as definies de desenvolvimento originais e novas foram produzidas como exemplos de como os ndices NV podem ser criados para oferecer a capacidade de modificar os dados PS e excluir os ndices NV em caso de necessidade (como para renovao de plataforma) .
Como o "valor secreto" usado para as definies de exemplo no  seguro, as definies de exemplo nunca devem ser usadas em plataformas de produo que
ser enviado para um cliente. No mnimo, voc deve modific-los para usar seu prprio "valor secreto".

A Intel fornece ferramentas e um TPM2 Provisioning Tutorial que orientar voc nas etapas de criao de suas prprias definies personalizadas.

Arquivos de definio (def) usam a seguinte conveno de nomenclatura:
    <fileNamePrefix> <purpose> <alg>. <ext>
      Onde:
      <ext>  a extenso do arquivo que indica o tipo de arquivo
        .iDef - NV Index definio
        .sDef - definio de sesso
        .pDef - Assero de Poltica
        .hash - um resumo de hash
        .auth - um authValue
        .pSet - instrui a ferramenta para definir a hierarquia authPolicy
        .nsh - arquivo em lote do UEFI
        .pol - Poltica Intel TXT para dados PS NV
      <alg>  um algoritmo de hash suportado, como SHA1, SHA256, SHA384, SHA512, SM3
      <purpose> indica o uso da definio
      <fileNamePrefix>  um prefixo de nome de arquivo arbitrrio que identifica o
projeto ou plataforma (por exemplo, MyFirst; Exemplo; Purley)
Os arquivos de amostra usam os seguintes prefixos de nome de arquivo
              "Default" OriginalDefault "" Exemplo "e" Original "
          Arquivos que no so especficos da plataforma no possuem um prefixo
            - voc no deve modificar esses arquivos.

  Para usar os scripts de amostra com suas prprias definies, modifique as definies de amostra e renomeie as definies usando seu prprio prefixo de nome de arquivo.
  Por exemplo, modifique ExamplePsSha256.idef e salve como PurleyPsSha256.
Sugere-se que os OEMs usem uma authPolicy diferente para cada gerao de plataforma e, portanto, o FileNamePrefix ajudar a identificar qual plataforma os defs devem ser usados.

=================== Scripts de provisionamento =========================
  Esse diretrio tambm contm arquivos de script que usam os arquivos de definio para provisionar o TPM. Esses scripts foram escritos para agilidade de algoritmo e plataforma para aceitar Algoritmo e nome de plataforma como parmetros de linha de comando.
==========
--- ResetPlatformAuth.nsh <alg> <fileNamePrefix>
Usa a authPolicy da plataforma para definir platformAuth como EMPTY. Precisa ser usado antes de executar qualquer outro script
 Para usar com exemplos SHA256 execute: ResetPlatformAuth SHA256 EXAMPLE
   ou substitua seu prprio nome de platfrom por "EXAMPLE"
========
--- SetPlatformPolicy.nsh <alg> <fileNamePrefix>
Para testes de desenvolvimento, pode ser usado para definir uma PlatformPolicy especfica. Permite que voc experimente diferentes polticas de plataforma. No  necessrio para o provisionamento normal
 Para definir PlatformPolicy para o valor de exemplo, execute: SetPlatformPolicy.nsh SHA256 EXAMPLE
========
--- Tpm2TxtProv.nsh <alg> <fileNamePrefix> [-o]
Ir criar os ndices AUX e PS NV para Intel TXT. Os exemplos so para os novos NV Handles e tambm h arquivos def para os NV Indexes mais antigos que possuem "Original" ou "OriginalDefault" para o fileNamePrefix - eles requerem o parmetro -o para criar o ndice AUX original.
  Para criar os novos ndices SHA256 AUX e PS: Tpm2TxtProv SHA256 EXAMPLE
  Para criar os antigos ndices SHA256 AUX e PS: Tpm2TxtProv SHA256 Original -o
========
--- Tpm2DeleteAUX.nsh <alg> <fileNamePrefix> [-o]
Ir apagar o ndice AUX. O parmetro fileNamePrefix deve ser o mesmo usado para criar o ndice PS (porque os dados do PS NV devem ser modificados para permitir
o ndice AUX a ser excludo). Voc deve usar o argumento -o para excluir o ndice AUX mais antigo (e ter o ACM correto).
 Para excluir o ndice de exemplo SHA256, execute: Tpm2DeleteAUX SHA256 EXAMPLE
 Para excluir o ndice SHA256 AUX original, execute: Tpm2DeleteAUX SHA256 Original -o
========

--- Tpm2DeletePS.nsh <alg> <fileNamePrefix>
Ir apagar o ndice PS.
 Para excluir o ndice de exemplo SHA256, execute: Tpm2DeletePS SHA256 EXAMPLE
 Para excluir o ndice SHA256 PS original, execute: Tpm2DeletePS SHA256 Original
========

--- Tpm2PpiProvDev.nsh <alg> <fileNamePrefix> [-D]
Ser criado ou excludo o ndice PPI dependendo do parmetro -D
 Para criar o ndice de exemplo SHA256, execute: Tpm2PpiProvDev SHA256 EXAMPLE
 Para criar o ndice original do PPI SHA256, execute: Tpm2PpiProvDev SHA256 Original
 Para excluir o ndice de exemplo SHA256, execute: Tpm2PpiProvDev SHA256 EXAMPLE -D
 Para excluir o ndice original do PPI SHA256, execute: Tpm2PpiProvDev SHA256 Original -D
========
--- Tpm2SgxProvDev.nsh <alg> <fileNamePrefix> [-D]
Ser criado ou excludo o ndice SGX, dependendo do parmetro -D
 Para criar o ndice de exemplo SHA256, execute: Tpm2SgxProvDev SHA256 EXAMPLE
 Para criar o ndice SHA256 Sgx original, execute: Tpm2SgxProvDev SHA256 Original
 Para excluir o ndice de exemplo SHA256, execute: Tpm2SgxProvDev SHA256 EXAMPLE -D
 Para excluir o ndice SHA256 SGX original, execute: Tpm2SgxProvDev SHA256 Original -D

 ================================================== ==========================
 Os seguintes scripts podem ser necessrios em plataformas de desenvolvimento, mas no em plataformas enviadas para clientes.
- TakeOwnership.nsh <alg> <fileNamePrefix> [-NE]
Isso ativar a hierarquia de armazenamento e, se o parmetro -NE for especificado, definir o valor de OwnerAuth (se ainda no estiver definido).
 Para definir OwnerAuth como "IntelTXT" execute: TakeOwnership SHA256 EXAMPLE -NE
 Para definir OwnerAuth como <EMPTY>, execute: TakeOwnership SHA256 EXAMPLE

 - Tpm2PoProv.nsh <alg> <prefixo do nome do arquivo> [{-D | -C} [-NE]]
Ser criado ou excludo o ndice de PO, dependendo de o parmetro -D estar presente. Script assume que OwnerAuth est vazio, se no, especifique o parmetro -NE
Quando OwnerAuth  vazio
 Para criar o ndice de exemplo SHA256, execute: Tpm2PoProv SHA256 EXAMPLE
 Para criar o ndice PO SHA256 original, execute: Tpm2PoProv SHA256 Original
 Para excluir o ndice de exemplo SHA256, execute: Tpm2PoProv SHA256 EXAMPLE -D
 Para excluir o ndice PO SHA256 original, execute: Tpm2PoProv SHA256 Original -D
Quando o OwnerAuth no est vazio
 Para criar o ndice de exemplo SHA256, execute: Tpm2PoProv SHA256 EXAMPLE -C -NE
 Para criar o ndice PO SHA256 original, execute: Tpm2PoProv SHA256 Original -C -NE
 Para excluir o ndice de exemplo SHA256, execute: Tpm2PoProv SHA256 EXAMPLE -D -NE
 Para excluir o ndice PO SHA256 original, execute: Tpm2PoProv SHA256 Original -D -NE

=======================================================================================================================
Q370 TPM Provision SOP
Step1. 
Please enter the BIOS setup to ensure that "Intel TXT(LT) Support" and "TPM Supported" are "Disable" in BIOS setup.

BIOS path:
Advanced->CPUConfiguration->IntelTXT(LT) Support
Advanced->TrustedComputing->TPM Supported

Step2.
Copy the TPM2 Prov files folder into a bootable USB flash root directory.

Step3.
Boot up the system and enter USB>UEFI shell and key in command cd TPM2 Prov files to enter TPM2 Prov files folder.

Step4.
Run commend "Tpm2TxtProv.nsh SHA256 Example"

Step5.
Run comment "Tpm2SgxiProv.nsh SHA256 Example"

Step6.
Reboot the system and set "Intel TXT(LT) Support" and "TPM Supported" "Enable" in BIOS setup.

Step7.
Make sure the system can boot into OS or DOS/Shell.
=======================================================================================================================
